import React, { Component } from 'react';
import PropTypes from 'prop-types';

class ListItem extends Component {
  constructor(props) {
    super(props)

    this.handleClick = this.handleClick.bind(this)
  }

  // 利用生命周期钩子防止不必要的渲染（改善性能）
  shouldComponentUpdate(nextProps, nextState) {
    if (nextProps.content !== this.props.content) {
      return true
    }
    return false
  }

  handleClick() {
    this.props.handleClick(this.props.index)
  }

  render() { 
    return (
      <li
        onClick={this.handleClick}
      >
        {this.props.prefix}{this.props.content}
      </li>
    );
  }
}

// prop校验
ListItem.propTypes = {
  content: PropTypes.string,
  index: PropTypes.number.isRequired,
  prefix: PropTypes.string
}

// 指定 props 的默认值：
ListItem.defaultProps = {
  prefix: '服务：'
};
 
export default ListItem;